Fixed debug lock issue for taking vector lock.
Signed-off-by: Xiantao Zhang <xiantao.zhang@intel.com>
struct irq_cfg *cfg;
unsigned int irq;
int ret;
+ unsigned long flags;
cpumask_t dest_mask;
if (!cpus_intersects(mask, cpu_online_map))
irq = desc->irq;
cfg = desc->chip_data;
-
- lock_vector_lock();
+
+ local_irq_save(flags);
+ lock_vector_lock();
ret = __assign_irq_vector(irq, cfg, mask);
unlock_vector_lock();
-
+ local_irq_restore(flags);
+
if (ret < 0)
return BAD_APICID;
DEFINE_PER_CPU(struct cpu_user_regs *, __irq_regs);
+/* Must be called when irq disabled */
void lock_vector_lock(void)
{
/* Used to the online set of cpus does not change